package demo2_simple_data_struct;

public class Node {
    //节点内容
    private  int data;
    //下一个节点
    Node next;
    public Node(int data) {
        this.data = data;
    }

    //为节点追加节点
    public Node append(Node node){
        //当前节点
        Node currentNode = this;
        while (true){
            //取出下一个节点
            Node nextNode = currentNode.next;
            //如果下一个节点为null,当前节点已经是最后一个节点
            if (nextNode == null)
                break;
            //取出当前节点
            currentNode = nextNode;
        }
        currentNode.next = node;
        return currentNode;
    }

    //获取下一个节点
    public  Node next(){
        return this.next;
    }

    //获取节点中的数据
    public  int getData(){
        return  this.data;
    }
    //判断是否是最后一个节点
    public boolean isLast(){
        return next == null;
    }
    public void  show(){
        Node currentNode = this;
        while (true){
            System.out.println(currentNode.data);
            currentNode = currentNode.next;
            if (currentNode==null)
                break;
        }
    }
    public void  removeNext(){
        Node newNode = next.next;
        this.next = newNode;
    }
    //当前节点后面插入节点
    public void  after(Node node){
        //取出下一个节点
        Node nextNode = next;
        //把新节点作为当前节点的下一个节点
        this.next = node;
        node.next = nextNode;
    }

}
